linux

推荐列表 站点导航

当前位置:首页 > 操作系统 > linux >

Linux_在Linux系统上开启Initrd文件系统的方法,initial RAM diskLinux初始RAM磁盘

来源:网络整理  作者:  发布时间:2020-12-20 16:34
在Linux系统上开启Initrd文件系统的方法,initial RAM diskLinux初始RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文...

[email protected]:initrd# ls
# are used; which they will be, but it's worth pointing out
[email protected]:initrd# ls
> /dev/.initramfs-tools

./lib/modules/2.6.18-6-amd64/kernel/drivers/net/bnx2.ko
2.将initrd文件名改为.gz文件,将其解压缩.
.....

mount -t tmpfs -o size=$tmpfs_size,mode=0755 udev /dev
代码如下:

代码如下:

复制代码

bin conf etc init lib lib64 sbin scripts
export ROOT=
. /conf/arch.conf
[email protected]:initrd# file initrd.img-2.6.18-6-amd64
[email protected]:initrd# file initrd.img-2.6.18-6-amd64.gz




以上就是initrd文件打开后的目录架构,当kernel启动加载initrd时,并没有任何系统的目录架构,这时会先以initrd所提供的目录当做是系统的暂时目录.

Initrd开启步骤

initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009

export ROOTFLAGS=
[email protected]:tmp# mkdir initrd


复制代码

也可以直接通过zcat读取gzip格式的文件,再将读出来的结果由pipeline交给cpio解开

复制代码



其中有个lib目录:里面存放着许多的模块,即现在系统所有的模块,这代表目录中所存放的模块都是开机所必须加载的模块.例如当kernel加载Initrd之后,initrd将会加相应的网络模块驱动,以便让我们进入操作系统能够识别到网卡.
[email protected]:initrd# file initrd.img-2.6.18-6-amd64 #发现该文件是一个gzip压缩过的文件
[email protected]:initrd# mv initrd.img-2.6.18-6-amd64 initrd.img-2.6.18-6-amd64.gz
#!/bin/sh
bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts

代码如下:


# Set modprobe env
代码如下:


[ -d /sys ] || mkdir /sys
[email protected]:initrd# file initrd.img-2.6.18-6-amd64
tmpfs_size="10M"
bin conf etc init lib lib64 sbin scripts

1.创建一个目录,将/boot/initrd.img-2.6.18-6-amd64 复制到该目录下.
[email protected]:initrd# ls
initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Tue May 14 13:50:26 2013, max compression


2.将该文件copy到/boot/下.重启机器生效.

复制代码


复制代码


bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts


代码如下:

./lib/firmware/bnx2-09-4.0.5.fw
[ -d /dev ] || mkdir -m 0755 /dev


initrd.img-2.6.18-6-amd64

[email protected]:tmp# cd initrd/
bnx2 183048 0

初始RAM磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。
bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts
[email protected]:initrd# ls
3.使用file发现解压缩过后的文件是一个cpid格式,是一种备份格式,使用cpio,参数'i' 代表解包 与'd' 代表在需要时自动建立第一层目录.
export ROOTFSTYPE=
if [ -e /etc/udev/udev.conf ]; then
32912 blocks
# Export relevant variables

[email protected]:initrd# cat init
代码如下:


export MODPROBE_OPTIONS="-qb"
在桌面或服务器Linux 系统中,initrd 是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd 是永久的根文件系统。本文将对这两种情况进行探索。

下面来看下如何打开initrd,这里我使用的是debian5操作系统

mkdir -p /var/lock
mount -t proc -o nodev,noexec,nosuid none /proc

复制代码

[email protected]:initrd# gunzip initrd.img-2.6.18-6-amd64.gz
./lib/firmware/bnx2-06-4.0.5.fw
[email protected]:initrd# rm initrd.img-2.6.18-6-amd64
# Note that this only becomes /dev on the real filesystem if udev's scripts
rm: remove regular file `initrd.img-2.6.18-6-amd64'? y
[ -e /dev/null ] || mknod /dev/null c 1 3

[email protected]:initrd# ls
代码如下:


[email protected]:initrd# ls
代码如下:


[email protected]:initrd# cp /boot/initrd.img-2.6.18-6-amd64 .

[email protected]:initrd# ls
[email protected]:initrd# ls

. /etc/udev/udev.conf

[email protected]:initrd# zcat initrd.img-2.6.18-6-amd64 | cpio -id
initrd.img-2.6.18-6-amd64.gz: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009

下面介绍如何让将修改后的initrd文件再重新打包起来.

复制代码

代码如下:

复制代码

bin conf etc init lib lib64 sbin scripts

复制代码

[ -e /dev/console ] || mknod -m 0600 /dev/console c 5 1
代码如下:

此外在initrd被kernel加载后的开机流程,是依照initrd文件中的一个init文件,由它所提供的脚本一步一步往下做,包括实体硬盘加载实际的操作系统也是由这个文件提供的.
mkdir /dev/.initramfs
[email protected]:initrd# lsmod | grep bnx2 #本机网络驱动


export quiet=n

echo "Loading, please wait..."

复制代码


1.在修改后的文件目录下,使用find将所有的文件列出来,再通过pipeline,把所有清单交给cpio指令.cpio用到的参数'c'代表用新的SVR4可移植格式.'o'代表建立文件.最后用gzip以最佳的压缩效率'-9'压缩(默认是-6),使用'>'导出.


代码如下:

复制代码

Linux初始RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM磁盘卸载,并释放内存。在很多嵌入式Linux系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM磁盘,包括如何创建以及如何在Linux内核中使用。
fi
export init=https://www.xp.cn/sbin/init


32884 blocks
32912 blocks
mount -t sysfs -o nodev,noexec,nosuid none /sys

复制代码


export readonly=y
[ -d /proc ] || mkdir /proc
export break=


initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod 工具。

复制代码



export DPKG_ARCH=


什么是初始 RAM 磁盘

[email protected]:initrd# cpio -id < initrd.img-2.6.18-6-amd64
[email protected]:initrd# find . -name 'bnx2*' #initrd里bnx2对应的模块
代码如下:

[ -d /root ] || mkdir -m 0700 /root

# Export the dpkg architecture
export ROOTDELAY=
initrd.img-2.6.18-6-amd64: ASCII cpio archive (SVR4 with no CRC)
假如临时又添加了一块最新的网卡,希望在开机时加载,这时只要修改initrd文件的内容在打个包就可以了,比起重新编译kernel或者安装操作系统要方便多了.

代码如下:

[email protected]:initrd# find | cpio -co | gzip -9 > initrd.img-2.6.18-6-amd64
[ -d /tmp ] || mkdir /tmp

相关热词: Linux 方法

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/xt/linux/6173.shtml

最新文章
并进行了数次优化更改 并进行了数次优化更改

时间:2021-01-23

在Linus发表文章的第二年 在Linus发表文章的第二年

时间:2021-01-23

当一个文件被加载时 当一个文件被加载时

时间:2021-01-21

 与--delete 呼应的是--exis 与--delete 呼应的是--exis

时间:2021-01-21

 $top top-18:50:38up6days $top top-18:50:38up6days

时间:2021-01-21

CLI和程序包管理器使开发 CLI和程序包管理器使开发

时间:2021-01-20

但是有时候这个系统上跑 但是有时候这个系统上跑

时间:2021-01-20

配置好prometheus数据源 配置好prometheus数据源

时间:2021-01-20

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Linux_在Linux系统上开启Initrd文件系统的方法,initial RAM diskLinux初始RAM磁盘

2020-12-20 编辑:


[email protected]:initrd# ls
# are used; which they will be, but it's worth pointing out
[email protected]:initrd# ls
> /dev/.initramfs-tools

./lib/modules/2.6.18-6-amd64/kernel/drivers/net/bnx2.ko
2.将initrd文件名改为.gz文件,将其解压缩.
.....

mount -t tmpfs -o size=$tmpfs_size,mode=0755 udev /dev
代码如下:

代码如下:

复制代码

bin conf etc init lib lib64 sbin scripts
export ROOT=
. /conf/arch.conf
[email protected]:initrd# file initrd.img-2.6.18-6-amd64
[email protected]:initrd# file initrd.img-2.6.18-6-amd64.gz




以上就是initrd文件打开后的目录架构,当kernel启动加载initrd时,并没有任何系统的目录架构,这时会先以initrd所提供的目录当做是系统的暂时目录.

Initrd开启步骤

initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009

export ROOTFLAGS=
[email protected]:tmp# mkdir initrd


复制代码

也可以直接通过zcat读取gzip格式的文件,再将读出来的结果由pipeline交给cpio解开

复制代码



其中有个lib目录:里面存放着许多的模块,即现在系统所有的模块,这代表目录中所存放的模块都是开机所必须加载的模块.例如当kernel加载Initrd之后,initrd将会加相应的网络模块驱动,以便让我们进入操作系统能够识别到网卡.
[email protected]:initrd# file initrd.img-2.6.18-6-amd64 #发现该文件是一个gzip压缩过的文件
[email protected]:initrd# mv initrd.img-2.6.18-6-amd64 initrd.img-2.6.18-6-amd64.gz
#!/bin/sh
bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts

代码如下:


# Set modprobe env
代码如下:


[ -d /sys ] || mkdir /sys
[email protected]:initrd# file initrd.img-2.6.18-6-amd64
tmpfs_size="10M"
bin conf etc init lib lib64 sbin scripts

1.创建一个目录,将/boot/initrd.img-2.6.18-6-amd64 复制到该目录下.
[email protected]:initrd# ls
initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Tue May 14 13:50:26 2013, max compression


2.将该文件copy到/boot/下.重启机器生效.

复制代码


复制代码


bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts


代码如下:

./lib/firmware/bnx2-09-4.0.5.fw
[ -d /dev ] || mkdir -m 0755 /dev


initrd.img-2.6.18-6-amd64

[email protected]:tmp# cd initrd/
bnx2 183048 0

初始RAM磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。
bin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts
[email protected]:initrd# ls
3.使用file发现解压缩过后的文件是一个cpid格式,是一种备份格式,使用cpio,参数'i' 代表解包 与'd' 代表在需要时自动建立第一层目录.
export ROOTFSTYPE=
if [ -e /etc/udev/udev.conf ]; then
32912 blocks
# Export relevant variables

[email protected]:initrd# cat init
代码如下:


export MODPROBE_OPTIONS="-qb"
在桌面或服务器Linux 系统中,initrd 是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd 是永久的根文件系统。本文将对这两种情况进行探索。

下面来看下如何打开initrd,这里我使用的是debian5操作系统

mkdir -p /var/lock
mount -t proc -o nodev,noexec,nosuid none /proc

复制代码

[email protected]:initrd# gunzip initrd.img-2.6.18-6-amd64.gz
./lib/firmware/bnx2-06-4.0.5.fw
[email protected]:initrd# rm initrd.img-2.6.18-6-amd64
# Note that this only becomes /dev on the real filesystem if udev's scripts
rm: remove regular file `initrd.img-2.6.18-6-amd64'? y
[ -e /dev/null ] || mknod /dev/null c 1 3

[email protected]:initrd# ls
代码如下:


[email protected]:initrd# ls
代码如下:


[email protected]:initrd# cp /boot/initrd.img-2.6.18-6-amd64 .

[email protected]:initrd# ls
[email protected]:initrd# ls

. /etc/udev/udev.conf

[email protected]:initrd# zcat initrd.img-2.6.18-6-amd64 | cpio -id
initrd.img-2.6.18-6-amd64.gz: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009

下面介绍如何让将修改后的initrd文件再重新打包起来.

复制代码

代码如下:

复制代码

bin conf etc init lib lib64 sbin scripts

复制代码

[ -e /dev/console ] || mknod -m 0600 /dev/console c 5 1
代码如下:

此外在initrd被kernel加载后的开机流程,是依照initrd文件中的一个init文件,由它所提供的脚本一步一步往下做,包括实体硬盘加载实际的操作系统也是由这个文件提供的.
mkdir /dev/.initramfs
[email protected]:initrd# lsmod | grep bnx2 #本机网络驱动


export quiet=n

echo "Loading, please wait..."

复制代码


1.在修改后的文件目录下,使用find将所有的文件列出来,再通过pipeline,把所有清单交给cpio指令.cpio用到的参数'c'代表用新的SVR4可移植格式.'o'代表建立文件.最后用gzip以最佳的压缩效率'-9'压缩(默认是-6),使用'>'导出.


代码如下:

复制代码

Linux初始RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM磁盘卸载,并释放内存。在很多嵌入式Linux系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM磁盘,包括如何创建以及如何在Linux内核中使用。
fi
export init=https://www.xp.cn/sbin/init


32884 blocks
32912 blocks
mount -t sysfs -o nodev,noexec,nosuid none /sys

复制代码


export readonly=y
[ -d /proc ] || mkdir /proc
export break=


initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod 工具。

复制代码



export DPKG_ARCH=


什么是初始 RAM 磁盘

[email protected]:initrd# cpio -id < initrd.img-2.6.18-6-amd64
[email protected]:initrd# find . -name 'bnx2*' #initrd里bnx2对应的模块
代码如下:

[ -d /root ] || mkdir -m 0700 /root

# Export the dpkg architecture
export ROOTDELAY=
initrd.img-2.6.18-6-amd64: ASCII cpio archive (SVR4 with no CRC)
假如临时又添加了一块最新的网卡,希望在开机时加载,这时只要修改initrd文件的内容在打个包就可以了,比起重新编译kernel或者安装操作系统要方便多了.

代码如下:

[email protected]:initrd# find | cpio -co | gzip -9 > initrd.img-2.6.18-6-amd64
[ -d /tmp ] || mkdir /tmp

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/xt/linux/6173.shtml

相关文章

风云图片

推荐阅读

返回linux频道首页